// 全局 AJAX 请求拦截器
(function () {
    // 保存原始的 XMLHttpRequest 对象
    var originalXHR = window.XMLHttpRequest;
    // 重写 XMLHttpRequest 对象
    window.XMLHttpRequest = function () {
        var xhr = new originalXHR();
        // 监听状态变化
        xhr.addEventListener('readystatechange', function () {
            // 请求完成
            if (xhr.readyState === 4) {
                // 检查响应状态
                if (xhr.status === 401) {
                    handleNoToken();
                }
            }
        });

        return xhr;
    };

    // 如果使用 jQuery，也可以添加 jQuery 的 AJAX 错误处理
    if (window.jQuery) {
        $(document).ajaxError(function (event, jqxhr, settings, thrownError) {
            if (jqxhr.status === 401) {
                handleNoToken();
            }
        });
    }

    // 如果使用 axios，添加 axios 拦截器
    if (window.axios) {
        axios.interceptors.response.use(
            response => response,
            error => {
                if (error.response && error.response.status === 401) {
                    handleNoToken();
                }
                return Promise.reject(error);
            }
        );
    }
})();


function handleNoToken() {
//将当前连接保存到缓存中
    localStorage.setItem('redirectUrl', window.location.href);
    // Token 失效，跳转到登录页
    window.location.href = '/';
}